/**
 * 
 */
package com.myBase.core.entity;

import java.util.Date;

import javax.validation.constraints.NotNull;

import org.hibernate.validator.constraints.Length;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.myBase.common.persistence.BaseEntity;

/**
 * 金币账户子表-记录用户某批次金币使用概况Entity
 * @author WuJie
 * @version 2017-05-04
 */
public class GoldcoinAccountDetail extends BaseEntity<GoldcoinAccountDetail> {

    private static final long serialVersionUID = 1L;

    private String detailid; // 主键

    private String branchid; // 多系统支持（易贷msyidai）

    private String accountid; // 关联 goldcoin_account

    private String goldcoinpoolid; // 关联 金币表 goldCoin

    private Date begintime; // 本批次金币可以开始使用时间

    private Date endtime; // 本批次金币过期时间

    private String sumall; // 本批次获得的总金币数

    private String useall; // 本批次已经使用的金币数

    private String nouse; // 本批次剩余可使用的金币数

    private String detailstatus; // 00-可用，01-过期(需定时任务支持)，02-停用

    private String userid; // 易贷/转赚中用户id

    private String overduesum; // 本批次过期的金币数

    private String beginDate;//开始时间

    private String endDate;//结束时间

    private String mobile;//手机号码

    private String activityId;//活动id

    private String equipment;//设备:如 安卓、IOS

    private String userName;//用户名称

    private String subChannel;//渠道

    private String activityName;//活动名称

    private int goldValidityDay;//金币有效天数

    private Date goldCollectionStart;//金币领取开始时间

    private Date goldCollectionEnd;//金币领取结束时间

    private Date goldValidityStart;//金币有效开始时间

    private Date goldValidityEnd;//金币有效结束时间

    private int offset;//起始页

    private int pageSize;//每页显示条数

    private Date beginCreateDate;//查询开始时间

    private Date endCreateDate;//查询结束时间
    
    private String remarks;

    public String getRemarks() {
		return remarks;
	}

	public void setRemarks(String remarks) {
		this.remarks = remarks;
	}

    public GoldcoinAccountDetail() {
        super();
    }

    @Length(min = 1, max = 8, message = "主键长度必须介于 1 和 8 之间")
    public String getDetailid() {
        return detailid;
    }

    public void setDetailid(String detailid) {
        this.detailid = detailid;
    }

    @Length(min = 1, max = 8, message = "关联 goldcoin_account长度必须介于 1 和 8 之间")
    public String getAccountid() {
        return accountid;
    }

    public void setAccountid(String accountid) {
        this.accountid = accountid;
    }

    @Length(min = 1, max = 8, message = "关联 金币表 goldCoin长度必须介于 1 和 8 之间")
    public String getGoldcoinpoolid() {
        return goldcoinpoolid;
    }

    public void setGoldcoinpoolid(String goldcoinpoolid) {
        this.goldcoinpoolid = goldcoinpoolid;
    }

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @NotNull(message = "本批次金币可以开始使用时间不能为空")
    public Date getBegintime() {
        return begintime;
    }

    public void setBegintime(Date begintime) {
        this.begintime = begintime;
    }

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @NotNull(message = "本批次金币过期时间不能为空")
    public Date getEndtime() {
        return endtime;
    }

    public void setEndtime(Date endtime) {
        this.endtime = endtime;
    }

    @Length(min = 1, max = 8, message = "本批次获得的总金币数长度必须介于 1 和 8 之间")
    public String getSumall() {
        return sumall;
    }

    public void setSumall(String sumall) {
        this.sumall = sumall;
    }

    @Length(min = 1, max = 8, message = "本批次已经使用的金币数长度必须介于 1 和 8 之间")
    public String getUseall() {
        return useall;
    }

    public void setUseall(String useall) {
        this.useall = useall;
    }

    @Length(min = 1, max = 8, message = "本批次剩余可使用的金币数长度必须介于 1 和 8 之间")
    public String getNouse() {
        return nouse;
    }

    public void setNouse(String nouse) {
        this.nouse = nouse;
    }

    @Length(min = 1, max = 2, message = "00-可用，01-过期(需定时任务支持)，02-停用长度必须介于 1 和 2 之间")
    public String getDetailstatus() {
        return detailstatus;
    }

    public void setDetailstatus(String detailstatus) {
        this.detailstatus = detailstatus;
    }

    @Length(min = 1, max = 8, message = "易贷/转赚中用户id长度必须介于 1 和 8 之间")
    public String getUserid() {
        return userid;
    }

    public void setUserid(String userid) {
        this.userid = userid;
    }

    @Length(min = 1, max = 8, message = "本批次过期的金币数长度必须介于 1 和 8 之间")
    public String getOverduesum() {
        return overduesum;
    }

    public void setOverduesum(String overduesum) {
        this.overduesum = overduesum;
    }

    @Length(min = 1, max = 20, message = "设备长度必须介于 1 和 20 之间")
    public String getEquipment() {
        return equipment;
    }

    public void setEquipment(String equipment) {
        this.equipment = equipment;
    }

    public int getOffset() {
        return offset;
    }

    public void setOffset(int offset) {
        this.offset = offset;
    }

    public int getPageSize() {
        return pageSize;
    }

    public void setPageSize(int pageSize) {
        this.pageSize = pageSize;
    }

    public String getBeginDate() {
        return beginDate;
    }

    public void setBeginDate(String beginDate) {
        this.beginDate = beginDate;
    }

    public String getEndDate() {
        return endDate;
    }

    public void setEndDate(String endDate) {
        this.endDate = endDate;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getActivityName() {
        return activityName;
    }

    public void setActivityName(String activityName) {
        this.activityName = activityName;
    }

    public int getGoldValidityDay() {
        return goldValidityDay;
    }

    public void setGoldValidityDay(int goldValidityDay) {
        this.goldValidityDay = goldValidityDay;
    }

    public Date getGoldCollectionStart() {
        return goldCollectionStart;
    }

    public void setGoldCollectionStart(Date goldCollectionStart) {
        this.goldCollectionStart = goldCollectionStart;
    }

    public Date getGoldCollectionEnd() {
        return goldCollectionEnd;
    }

    public void setGoldCollectionEnd(Date goldCollectionEnd) {
        this.goldCollectionEnd = goldCollectionEnd;
    }

    public Date getGoldValidityStart() {
        return goldValidityStart;
    }

    public void setGoldValidityStart(Date goldValidityStart) {
        this.goldValidityStart = goldValidityStart;
    }

    public Date getGoldValidityEnd() {
        return goldValidityEnd;
    }

    public void setGoldValidityEnd(Date goldValidityEnd) {
        this.goldValidityEnd = goldValidityEnd;
    }

    public String getMobile() {
        return mobile;
    }

    public void setMobile(String mobile) {
        this.mobile = mobile;
    }

    public String getActivityId() {
        return activityId;
    }

    public void setActivityId(String activityId) {
        this.activityId = activityId;
    }

    public Date getBeginCreateDate() {
        return beginCreateDate;
    }

    public void setBeginCreateDate(Date beginCreateDate) {
        this.beginCreateDate = beginCreateDate;
    }

    public Date getEndCreateDate() {
        return endCreateDate;
    }

    public void setEndCreateDate(Date endCreateDate) {
        this.endCreateDate = endCreateDate;
    }

    public String getSubChannel() {
        return subChannel;
    }

    public void setSubChannel(String subChannel) {
        this.subChannel = subChannel;
    }

    public String getBranchid() {
        return branchid;
    }

    public void setBranchid(String branchid) {
        this.branchid = branchid;
    }

}